Foreword
This assignment should be finished with Prolog
.
Question I
Given a set, list all its elements.
给出一个集合,列出其所有元素
|
|
(Thanks to Shiyu Wu)
Question II
Given a set, list all its subsets.
给出一个集合,列出其所有子集
|
|
(Thanks to Pan Shi)
Related Prolog grammar: brief explanation
匿名变量 _
prolog中,变量由大写字母或下划线 _
开头。
匿名变量 _
不会绑定为任何值,所以也不要求它所出现的位置的值必须相同。
列表表达 |
Prolog提供了把表头项目以及除去表头项目后剩下的列表分离的方法。
其次,Prolog强大的递归功能可以方便地访问除去表头项目后的列表。
如:1[X | Y]
使用此列表可以与任意的列表匹配,匹配成功后,X绑定为列表的第一个项目的值,
我们称之为表头(head)。而Y则绑定为剩下的列表,我们称之为表尾(tail),举例说明:
|
|